#makefile to compile tinyxml

MDN_SDK=.

SRC_DIR=.
LIB_DIR=../lib
OBJ_DIR=../obj
INCLUDE_DIR=../include
BIN_DIR=../bin
INC=-I$(INCLUDE_DIR)
SRC_OPT=-D__linux__ $(MACRO_DEFINE)

LIB_EXT=a
OBJ_EXT=o

COMP_NAME=g++
LIB_NAME=ar
COMP_OPT=-c -g -Wall -fno-strict-aliasing -O -O2 -o $@ -fprofile-arcs -ftest-coverage 
LIB_OPT=-cr
LINK_NAME=g++
LINK_OPT=-g -O -O2 -o $@ -fprofile-arcs

DEL=rm -f

OBJS=$(OBJ_DIR)/serverconfig.$(OBJ_EXT)\
	$(OBJ_DIR)/tinystr.$(OBJ_EXT)\
	$(OBJ_DIR)/tinyxml.$(OBJ_EXT)\
	$(OBJ_DIR)/tinyxmlparser.$(OBJ_EXT)\
	$(OBJ_DIR)/tinyxmlerror.$(OBJ_EXT)

all:$(BIN_DIR)/test
	
$(LIB_DIR)/libtinyxml.$(LIB_EXT):$(OBJS)
	$(LIB_NAME) $(LIB_OPT)  $@ $^
$(BIN_DIR)/test: $(OBJ_DIR)/test.$(OBJ_EXT) $(LIB_DIR)/libtinyxml.$(LIB_EXT)
	$(LINK_NAME) $(LINK_OPT)    $^

$(OBJ_DIR)/serverconfig.$(OBJ_EXT):$(SRC_DIR)/serverconfig.cpp
	$(COMP_NAME) $(COMP_OPT)  $(INC) $(SRC_OPT) $<

$(OBJ_DIR)/tinystr.$(OBJ_EXT):$(SRC_DIR)/tinystr.cpp
	$(COMP_NAME) $(COMP_OPT)  $(INC) $(SRC_OPT) $<

$(OBJ_DIR)/tinyxml.$(OBJ_EXT):$(SRC_DIR)/tinyxml.cpp
	$(COMP_NAME) $(COMP_OPT)  $(INC) $(SRC_OPT) $<

$(OBJ_DIR)/tinyxmlparser.$(OBJ_EXT):$(SRC_DIR)/tinyxmlparser.cpp
	$(COMP_NAME) $(COMP_OPT)  $(INC) $(SRC_OPT) $<

$(OBJ_DIR)/tinyxmlerror.$(OBJ_EXT):$(SRC_DIR)/tinyxmlerror.cpp
	$(COMP_NAME) $(COMP_OPT)  $(INC) $(SRC_OPT) $<
$(OBJ_DIR)/test.$(OBJ_EXT):$(SRC_DIR)/test.cpp
	$(COMP_NAME) $(COMP_OPT)  $(INC) $(SRC_OPT) $<

clean:
	$(DEL) $(OBJ_DIR)/*.*
	$(DEL) $(LIB_DIR)/*.*
